package com.supermap.dubbo.api.agrinfo;


import com.supermap.dataservice.util.Table;
import com.supermap.dubbo.api.agrinfo.entity.Agrinfo;
import com.supermap.dubbo.api.agrinfo.entity.AgrinfoComment;
import com.supermap.dataservice.util.JSONUtil;

import java.util.List;

/**
 * @Author:langhongshuai
 * @Description:农田业务层
 * @Date:18/1/29 下午3:00
 */
public interface AgrinfoService {

    /**
     * 获取用户的所有农情信息
     * @param userId
     * @return
     */
    public JSONUtil getAgrinfoByUIdArea(String userId, String areaCode);

    /**
     * 增加农情或者灾情
     * @param agrinfo
     * @return
     */
    public JSONUtil addAgrinfo(Agrinfo agrinfo);


    JSONUtil getAgriMsgCountByArea(String[] areaCodes, String year);

    public JSONUtil getAllAgrinfo();

    /**
     * 增加评论内容
     * @param agrinfoComment
     * @return
     */
    boolean addagrinfocomment(AgrinfoComment agrinfoComment, String uid);
    Integer getLastId();
    /**
     *根据农情ID得到 所有的评论
     * @param agrInfoId
     * @return
     */
    List<AgrinfoComment> getAllAgrinfoCommentByagrInfoId(int agrInfoId);

    /**
     * 得到所有的评论内容（树形结构）
     * @param list
     * @return
     */
    JSONUtil showAgrinfoComment(List<AgrinfoComment> list);//得到一个 树形结构数据

    /**
     * 删除农情
     * @param agrInfoId
     * @return
     */
    public JSONUtil delAgrinfo(int agrInfoId);

    /**
     * 根据type和areacode得到农情
     * @param type
     * @param areacode
     * @return
     */
    public JSONUtil   getAgrinfoByAreacodeandCropid(String areacode, String type);

    /**
     *  根据条件得到农情
     * @param type
     * @return
     */
    public JSONUtil getAgrinfos(String type, String areaCode, String dateTime);

    JSONUtil searchAgrInfoByShowName(String showName, String areaCode);

    /**
     * 根据userId获取该农情的评论内容和点赞
     * @param table
     * @param userId
     * @param areaCode
     * @return
     */
    JSONUtil getAgrAllInfoByUserIdorAreaCode(Table table, String userId,String areaCode);

    /***
     * 根据区域id统计
     * ***/
    JSONUtil agriInfoCount(Table table,Agrinfo agrinfo);

    /***
     * 统计用户和农田
     * ***/
    JSONUtil farmCount(Table table,Agrinfo agrinfo);

    /**
     * 分角色统计
     * **/
    JSONUtil roleFarmCount(Table table,Agrinfo agrinfo);
/**导出农情统计**/
    List<Agrinfo> agriExcel(Table table,Agrinfo agrinfo);

    /****
     * 导出农田和用户统计1
     * ***/
    List<Agrinfo> userFarmExcel(Table table,Agrinfo agrinfo);

    /***
     * 导出角色和农田统计1
     * ***/
    List<Agrinfo> roleFarmExcel(Table table,Agrinfo agrinfo);
}
